package com.bestcem.xm.common.core.config.delaymq.service;

/**
 * @author sh.pei <sh.pei@idiaoyan.com>
 * @version v1.0
 * @date 2022/1/13 17:24
 */
public interface DelayMessageService {

    /**
     * 从redis的zset里得到要到期的mq消息,并将消息投递到mq里。
     */
    void pickMsgFromRedis();

    /**
     * 从数据库里查到所有待加入到redis的消息,加入redis;
     */
    void pickToToAddRedisMsgFromDataBase();

    /**
     * 从数据库里查到所有超时但未从redis发送出去的消息;正常情况不会存在这种消息,如果存在这种消息,邮件告警处理
     */
    void pickToToSendMsgFromDataBase();

    /**
     * 从数据库查到所有发送失败的消息,进行补发;
     */
    void pickSendFailMsgFromDataBase();

    /**
     * 删除大于1月的消息;
     */
    void deleteUselessMsg();
}
